Skip to content

Conversation

@lkdvos
Copy link
Member

@lkdvos lkdvos commented Nov 14, 2025

I made a number of small final fixes:

  • copy_input was missing some ::typeof in the signatures, making the CI output complain about method redefinitions
  • the gauge tolerances were throwing warnings for 0.0 gauge dependency in the case of empty arrays (atol = rtol = gaugedep = 0.0). Here I changed < to <= on these checks to remedy this
  • renamed gaugefix to fixgauge for the keywords

I also added a changelog to the documentation, as I think this is good practice in general, and it makes it a lot easier to (auto)generate release notes.


MatrixAlgebraKit.jl v0.6.0 Release Notes

We are pleased to announce the release of MatrixAlgebraKit.jl v0.6.0. This release brings significant new features, enhanced GPU support, and improved automatic differentiation capabilities.

Highlights

  • Expanded GPU Support: GPU acceleration for polar decomposition, projections, and orthogonal space computations
  • Mooncake AD Integration: New reverse-mode automatic differentiation rules using Mooncake.jl
  • BigFloat Support: Arbitrary precision computing via GenericLinearAlgebra extension
  • New Projection Operations: Introduction of project_isometric for manifold projections
  • Enhanced Matrix Properties: New functions for Hermitian and anti-Hermitian decomposition

New Features

Matrix Projections

  • project_isometric - Project matrices onto the isometric manifold (#67)
  • PolarNewton - New Newton-iteration-based algorithm for polar decomposition (#67)

Matrix Property Functions

New functions for analyzing and manipulating matrix properties (#64):

  • ishermitian - Check if a matrix is Hermitian
  • isantihermitian - Check if a matrix is anti-Hermitian
  • hermitianpart! / hermitianpart - Extract Hermitian component (in-place and allocating)
  • antihermitianpart! / antihermitianpart - Extract anti-Hermitian component (in-place and allocating)

Extended Type Support

  • BigFloat precision through new GenericLinearAlgebra extension (#87)
  • GPU wrapper types now have default algorithm implementations (#49)

Automatic Differentiation

  • Mooncake.jl reverse-mode AD rules added (#85)

GPU Acceleration

Extended GPU support across multiple operations:

  • Image and null space computations (#82)
  • Polar decomposition (#83)
  • Projection operations (#81)
  • Improved SVD operations (#80)

Truncation Features

  • Truncation error output for truncated decompositions (#75)
  • Enhanced documentation for truncated decomposition keyword arguments (#71)

Breaking Changes

Renamed Functions

  • isisometryisisometric for consistency with project_isometric (#73)

Interface Changes

  • Refactored interface for left_orth, right_orth, left_null, and right_null (#79)

Improvements

Behavior Changes

  • Optional gauge fixing: gaugefix! is now optional (#95)
  • Relaxed Hermitian checks: Loosened strictness on hermiticity checks (#78)
  • Updated pullback tolerances for improved numerical stability when the input norms are large or small (#92)

Dependencies

New Extensions

  • MatrixAlgebraKitGenericLinearAlgebraExt - BigFloat support
  • MatrixAlgebraKitGenericSchurExt - BigFloat support
  • MatrixAlgebraKitMooncakeExt - Mooncake AD integration

Compatibility

  • Julia: 1.10+
  • AMDGPU: 2
  • CUDA: 5
  • ChainRulesCore: 1
  • GenericLinearAlgebra: 0.3.19+
  • GenericSchur: 0.5.6+
  • Mooncake: 0.4.174+

Acknowledgments

Thank you to all contributors who made this release possible.

Documentation

For detailed documentation, please visit:

Links


For any issues or questions, please file an issue on our GitHub repository.

@lkdvos lkdvos requested review from Jutho and kshyatt November 14, 2025 18:18
@codecov
Copy link

codecov bot commented Nov 14, 2025

Codecov Report

❌ Patch coverage is 93.18182% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/common/defaults.jl 25.00% 3 Missing ⚠️
Files with missing lines Coverage Δ
ext/MatrixAlgebraKitGenericLinearAlgebraExt.jl 95.52% <100.00%> (ø)
src/implementations/eig.jl 99.08% <100.00%> (ø)
src/implementations/eigh.jl 94.28% <100.00%> (ø)
src/implementations/gen_eig.jl 100.00% <100.00%> (ø)
src/implementations/svd.jl 92.17% <100.00%> (ø)
src/interface/decompositions.jl 52.63% <ø> (ø)
src/pullbacks/eig.jl 95.94% <100.00%> (ø)
src/pullbacks/eigh.jl 91.04% <100.00%> (ø)
src/pullbacks/lq.jl 95.31% <100.00%> (ø)
src/pullbacks/qr.jl 95.23% <100.00%> (ø)
... and 2 more
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@Jutho Jutho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I much like the < to <= change for the gauge dependency check, this was indeed necessary.

@lkdvos lkdvos added the documentation Improvements or additions to documentation label Nov 14, 2025
@github-actions
Copy link

After the build completes, the updated documentation will be available here

@lkdvos lkdvos enabled auto-merge (squash) November 14, 2025 19:06
@lkdvos lkdvos merged commit eceef30 into main Nov 14, 2025
10 checks passed
@lkdvos lkdvos deleted the v0.6 branch November 14, 2025 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants